package com.gaofans.vertx.boot.dbutils.session;

import com.gaofans.vertx.boot.dbutils.mapper.RowMapper;
import io.vertx.sqlclient.SqlClient;
import reactor.core.publisher.Mono;

import java.util.Collection;
import java.util.List;

public interface FindOperator<S extends SqlClient,T> {

    FindOperator<S,T> by(String sql);

    FindOperator<S,T> map(RowMapper<T> mapper);

    FindOperator<S,T> batch(List<Object>... params);

    FindOperator<S,T> with(Object... params);

    Mono<T> single();

    Mono<List<T>> list();
}
